home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-05-19 | 5.4 KB | 221 lines | [TEXT/MPS ] |
- { }
- { Created: Sunday, December 9, 1991 at 9:55 PM }
- { Modified: Saturday, January 18, 1992 at 9:44 PM }
- { UGLibrary.p }
- { Pascal Interface to UGLibrary.o }
- { The library to manipulate the Users & Groups Data File }
- { }
- { Copyright Apple Computer, Inc. 1991 }
- { All rights reserved }
- { }
-
- UNIT UGLibrary;
-
- INTERFACE
-
- USES
- OSUtils;
-
- CONST
- { error codes for the UGLibrary }
- ugUserAlreadyExists = 1;
- ugGroupAlreadyExists = 2;
- ugULInfoRecNotCreated = 3;
- ugNoMoreUGs = 4;
- ugUserNotFound = 5;
- ugGroupNotFound = 6;
- ugNotAUser = 7;
- ugNotAGroup = 8;
- ugTooManyGroups = 9;
- ugNotaMember = 10;
- ugNoMoreUsers = 11;
- ugNoMoreGroups = 12;
- ugBadParamErr = 13;
- ugUserAlreadyAMember = 14;
- ugAPrmryGroupExists = 15;
- ugServerRunning = 16;
- ugAdminRunning = 17;
- ugNotBtree = 18;
- ugBadKey = 19;
- ugDskFull = 20;
- ugBadUID = 21;
- ugInvalidPasswd = 22;
- ugEOF = 23;
- ugBOF = 24;
- ugDefNameErr = 98;
- ugFatalError = 99;
-
- { ugUserFlags for UGNewUser, UGGetUserInfo, and UGSetUserInfo }
- IACEnabled = $0001;
- LoginEnabled = $0100;
- SuperUser = $0200;
- NoChangePwd = $0400;
- GetNewPwd = $1000;
-
- { ugSrvrFlags[0] for UGGetULInfo and UGSetULInfo }
- Apple2 = 1;
- NoGuests = 2;
- IACGuestEnabled = 16;
- IACGlobalEnabled = 32;
-
- { ugSrvrFlags[1] for UGGetULInfo and UGSetULInfo }
- DontSavePwd = 1;
-
- { ugChngFlags codes for UGSetUserInfo }
- ChngUserFlags = 1;
- ChngUserPasswd = 2;
- ChngUAll = 3;
-
- { ugChngFlags codes for UGSetULInfo }
- ChngSrvrFlags = 1;
- ChngAdmnKey = 2;
- ChngMinPwdLen = 4;
- ChngMaxBadLogins = 8;
- ChngPwdExpDate = 16;
- ChngULAll = 31;
-
- { server version as returned by UGGetULInfo }
- Sys7SrvrVer = 3;
- AS3SrvrVer = 4;
-
- TYPE
- Str199 = STRING[199];
- Str8 = STRING[8];
-
- { These are the Param Blocks for the interface calls: }
-
- { Use UGFilePB for UGOpenFile, UGCloseFile and UGCreateFile }
- UGFilePB = RECORD
- qLink: QElemPtr;
- qType: INTEGER;
- ugTrap: INTEGER;
- ugCmdAddr: Ptr;
- ugCompletion: ProcPtr;
- ugResult: OSErr;
- ugNamePtr: StringPtr;
- ugVRefNum: INTEGER;
- ugRefNum: INTEGER;
- ugDirID: LONGINT;
- ugAccessID: LONGINT;
- ugUserID: LONGINT;
- ugGroupID: LONGINT;
- ugAdminKey: StringPtr;
- END;
-
- { Use UGUserPB for UGNewUser, UGDeleteUser, UGRenameUser, UGGetUserInfo, }
- { UGSetUserInfo, and UGAuthenticateUser }
- UGUserPB = RECORD
- qLink: QElemPtr;
- qType: INTEGER;
- ugTrap: INTEGER;
- ugCmdAddr: Ptr;
- ugCompletion: ProcPtr;
- ugResult: OSErr;
- ugNamePtr: StringPtr;
- ugVRefNum: INTEGER;
- ugRefNum: INTEGER;
- ugDirID: LONGINT;
- ugAccessID: LONGINT;
- ugUserID: LONGINT;
- ugGroupID: LONGINT;
- ugPosOffset: INTEGER;
- ugMisc: StringPtr;
- ugChngFlags: INTEGER;
- ugPassword: StringPtr;
- ugUserFlags: LONGINT;
- ugNumBadLogins: INTEGER;
- ugPwdDate: LONGINT;
- ugNumGroups: INTEGER;
- ugGroups: ARRAY[0..41] OF LONGINT;
- END;
-
- { Use UGGroupPB for UGNewGroup, UGDeleteGroup, UGRenameGroup, UGGetGroupInfo, }
- { UGAssignUserToGroup, and UGDeleteUserFromGroup }
- UGGroupPB = RECORD
- qLink: QElemPtr;
- qType: INTEGER;
- ugTrap: INTEGER;
- ugCmdAddr: Ptr;
- ugCompletion: ProcPtr;
- ugResult: OSErr;
- ugNamePtr: StringPtr;
- ugVRefNum: INTEGER;
- ugRefNum: INTEGER;
- ugDirID: LONGINT;
- ugAccessID: LONGINT;
- ugUserID: LONGINT;
- ugGroupID: LONGINT;
- ugPosOffset: INTEGER;
- ugMisc: StringPtr;
- ugPrimaryFlag: Boolean;
- END;
-
- { Use UGServerPB for UGGetULInfo and UGSetULInfo }
- UGServerPB = RECORD
- qLink: QElemPtr;
- qType: INTEGER;
- ugTrap: INTEGER;
- ugCmdAddr: Ptr;
- ugCompletion: ProcPtr;
- ugResult: OSErr;
- ugNamePtr: StringPtr;
- ugVRefNum: INTEGER;
- ugRefNum: INTEGER;
- ugDirID: LONGINT;
- ugAccessID: LONGINT;
- ugUserID: LONGINT;
- ugGroupID: LONGINT;
- ugAdminKey: StringPtr;
- ugSrvrVersion: INTEGER;
- ugChngFlags: INTEGER;
- ugSrvrFlags: ARRAY[0..1] OF LONGINT;
- ugMinPwdLen: SignedByte;
- filler1: SignedByte;
- ugMaxBadLogins: INTEGER;
- ugPwdExpDate: LONGINT;
- END;
-
- UserGroupPBPtr = ^UGParamBlockRec;
- UGParamBlockRec = RECORD
- CASE Integer OF
- 0: (
- ugFileParam: UGFilePB
- );
- 1: (
- ugUserParam: UGUserPB
- );
- 2: (
- ugGroupParam: UGGroupPB
- );
- 3: (
- ugServerParam: UGServerPB
- );
- END;
-
- { Declaration of functions }
-
- FUNCTION UGOpenFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGCloseFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGCreateFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
-
- FUNCTION UGNewUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGDeleteUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGRenameUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGGetUserInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGSetUserInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGAuthenticateUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
-
- FUNCTION UGNewGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGDeleteGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGRenameGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGGetGroupInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
-
- FUNCTION UGAssignUserToGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGDeleteUserFromGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
-
- FUNCTION UGGetULInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
- FUNCTION UGSetULInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
-
- IMPLEMENTATION
-
- END.